package com.otitan.la.forest.industry.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;

/**
 * 企业信息表
 *
 * @author jiacs
 * @email xxx
 * @date 2020-10-14 10:50:02
 */
@Data
@TableName("\"BSS_ENTERPRISE\"")
@ApiModel("企业信息表实体")
public class EnterpriseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID", required = false)
    @TableId("\"ID\"")
    private String id;

    /**
     * 企业名称
     */
    @ApiModelProperty(value = "企业名称", required = true)
    @NotEmpty(message = "企业名称不能为空")
    @Length(max = 42, message = "企业名称不能超过42个字符")
    @TableField("\"NAME\"")
    private String name;

    /**
     * 统一社会信用代码
     */
    @ApiModelProperty(value = "统一社会信用代码", required = false)
    @Length(max = 32, message = "统一社会信用代码不能超过 32 个字符")
    @TableField("\"CODE\"")
    private String code;

    /**
     * 法定代表人
     */
    @ApiModelProperty(value = "法定代表人", required = true)
    @NotEmpty(message = "法定代表人不能为空")
    @Length(max = 10, message = "法定代表人不能超过10个字符")
    @TableField("\"LEGAL_REPRESENTATIVE\"")
    private String legalRepresentative;

    /**
     * 法定代表人联系电话
     */
    @ApiModelProperty(value = "法定代表人联系电话", required = false)
    @Length(max = 16, message = "法定代表人联系电话不能超过 16 个字符")
    @TableField("\"TEL\"")
    private String tel;

    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人", required = false)
    @Length(max = 10, message = "联系人不能超过 10 个字符")
    @TableField("\"LINKMAN\"")
    private String linkman;

    /**
     * 地址
     */
    @ApiModelProperty(value = "地址", required = false)
    @Length(max = 42, message = "地址不能超过42个字符")
    @TableField("\"ADDRESS\"")
    private String address;

    /**
     * 所在行政区编码
     */
    @ApiModelProperty(value = "所在行政区编码", required = true)
    @NotEmpty(message = "所在行政区编码不能为空")
    @Length(max = 32, message = "所在行政区编码不能超过 32 个字符")
    @TableField("\"AREA_CODE\"")
    private String areaCode;

    /**
     * 是否龙头企业(0否 1是)
     */
    @ApiModelProperty(value = "是否龙头企业(0否 1是)", required = true)
    @NotNull(message = "是否龙头企业(0否 1是)不能为空")
    @TableField("\"IS_LEADING_ENTERPRISES\"")
    private Integer isLeadingEnterprises;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度", required = false)
    @TableField("\"LON\"")
    private BigDecimal lon;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度", required = false)
    @TableField("\"LAT\"")
    private BigDecimal lat;

    /**
     * 企业类型
     */
    @ApiModelProperty(value = "企业类型", required = true)
    @NotEmpty(message = "企业类型不能为空")
    @Length(max = 21, message = "企业类型不能超过 21 个字符")
    @TableField("\"ENTER_TYPE\"")
    private String enterType;

    /**
     * 企业性质
     */
    @ApiModelProperty(value = "企业性质", required = false)
    @Length(max = 10, message = "企业性质不能超过 10 个字符")
    @TableField("\"ENTER_NATURE\"")
    private String enterNature;

    /**
     * 企业批次
     */
    @ApiModelProperty(value = "企业批次", required = true)
    @NotEmpty(message = "企业批次不能为空")
    @Length(max = 36, message = "企业批次不能超过 36 个字符")
    @TableField("\"BATCH_ID\"")
    private String batchId;

    /**
     * 填报人
     */
    @ApiModelProperty(value = "填报人", required = false)
    @Length(max = 10, message = "填报人不能超过 10 个字符")
    @TableField("\"CREATEPEOPLEID\"")
    private String createPeopleid;

    /**
     * 成立时间
     */
    @ApiModelProperty(value = "成立时间", required = false)
    @TableField("\"FOUND_DATE\"")
    private Date foundDate;

    /**
     * 注册商标
     */
    @ApiModelProperty(value = "注册商标", required = false)
    @Length(max = 21, message = "注册商标不能超过 21 个字符")
    @TableField("\"REGISTERED_TRADEMARK\"")
    private String registeredTrademark;

    /**
     * 是否省级名牌(104)(0否 1是)
     */
    @ApiModelProperty(value = "是否省级名牌(104)(0否 1是)", required = true)
    @NotNull(message = "是否省级名牌(104)(0否 1是)不能为空")
    @TableField("\"IS_CITY_BRAND\"")
    private Integer isCityBrand;

    /**
     * 企业(产品)获得过何种荣誉(国家名牌、省名牌、驰名商标、著名商标、产品专利、相关认证等)
     */
    @ApiModelProperty(value = "企业(产品)获得过何种荣誉(国家名牌、省名牌、驰名商标、著名商标、产品专利、相关认证等)", required = false)
    @Length(max = 85, message = "企业(产品)获得过何种荣誉(国家名牌、省名牌、驰名商标、著名商标、产品专利、相关认证等)不能超过 85 个字符")
    @TableField("\"PATENT_OR_REWARD\"")
    private String patentOrReward;

    /**
     * 通过何种体系的质量认证
     */
    @ApiModelProperty(value = "通过何种体系的质量认证", required = false)
    @Length(max = 85, message = "通过何种体系的质量认证不能超过 85 个字符")
    @TableField("\"QUALITY_CERTIFICATE\"")
    private String qualityCertificate;

    /**
     * 有无自营进出口权(0无 1有)
     */
    @ApiModelProperty(value = "有无自营进出口权(0无 1有)", required = true)
    @NotNull(message = "有无自营进出口权(0无 1有)不能为空")
    @TableField("\"HAS_OVERSEAS_POWER\"")
    private Integer hasOverseasPower;

    /**
     * 环保标准达标情况
     */
    @ApiModelProperty(value = "环保标准达标情况", required = false)
    @Length(max = 85, message = "环保标准达标情况不能超过 85 个字符")
    @TableField("\"ENV_STANDARD\"")
    private String envStandard;

    /**
     * 绿色有机产品
     */
    @ApiModelProperty(value = "绿色有机产品", required = false)
    @Length(max = 85, message = "绿色有机产品不能超过 85 个字符")
    @TableField("\"ORGANIC_PRODUCTS\"")
    private String organicProducts;

    /**
     * 新产品开发(或引种)、引进推广新技术、工艺、设备数量(项)
     */
    @ApiModelProperty(value = "新产品开发(或引种)、引进推广新技术、工艺、设备数量(项)", required = false)
    @Length(max = 85, message = "新产品开发(或引种)、引进推广新技术、工艺、设备数量(项)不能超过 85 个字符")
    @TableField("\"NEW_PRO_NAME\"")
    private String newProName;

    /**
     * 是否高新企业(39)（0否 1是）
     */
    @ApiModelProperty(value = "是否高新企业(39)（0否 1是）", required = true)
    @NotNull(message = "是否高新企业(39)（0否 1是）不能为空")
    @TableField("\"IS_HNTE\"")
    private Integer isHnte;

    /**
     * 年创汇额
     */
    @ApiModelProperty(value = "年创汇额", required = false)
    @Length(max = 64, message = "年创汇额不能超过 64 个字符")
    @TableField("\"EARN_EXPORT\"")
    private String earnExport;

    /**
     * 净资产利润率
     */
    @ApiModelProperty(value = "净资产利润率", required = false)
    @TableField("\"MARGIN_ASSETS\"")
    private BigDecimal marginAssets;

    /**
     * 近3年纳税总额
     */
    @ApiModelProperty(value = "近3年纳税总额", required = false)
    @Length(max = 64, message = "近3年纳税总额不能超过 64 个字符")
    @TableField("\"THREE_TAX\"")
    private String threeTax;

    /**
     * 林业基地建设面积(亩)
     */
    @ApiModelProperty(value = "林业基地建设面积(亩)", required = false)
    @TableField("\"BASE_AREA\"")
    private BigDecimal baseArea;

    /**
     * 带动农户数量
     */
    @ApiModelProperty(value = "带动农户数量", required = false)
    @TableField("\"FARMERS_NUM\"")
    private Integer farmersNum;

    /**
     * 提供就业人数
     */
    @ApiModelProperty(value = "提供就业人数", required = false)
    @NotNull(message = "提供就业人数不能为空")
    @TableField("\"EMPLOYMENT_NUM\"")
    private Integer employmentNum;

    /**
     * 主要产品
     */
    @ApiModelProperty(value = "主要产品", required = false)
    @Length(max = 85, message = "主要产品不能超过 85 个字符")
    @TableField("\"MAIN_PRODUCTS\"")
    private String mainProducts;

    /**
     * 装备技术水平
     */
    @ApiModelProperty(value = "装备技术水平", required = false)
    @Length(max = 85, message = "装备技术水平不能超过 85 个字符")
    @TableField("\"TECHNICAL_LEVEL\"")
    private String technicalLevel;

    /**
     * 农户从中增加收入（元/户）
     */
    @ApiModelProperty(value = "农户从中增加收入（元/户）", required = false)
    @TableField("\"INCOME\"")
    private BigDecimal income;

    /**
     * 生产能力
     */
    @ApiModelProperty(value = "生产能力", required = false)
    @Length(max = 42, message = "生产能力不能超过 42 个字符")
    @TableField("\"PRODUCTION_CAPACITY\"")
    private String productionCapacity;

    /**
     * 产品品牌
     */
    @ApiModelProperty(value = "产品品牌", required = false)
    @Length(max = 42, message = "产品品牌不能超过 42 个字符")
    @TableField("\"PRODUCT_BRAND\"")
    private String productBrand;

    /**
     * 商标或地理标志证明商标注册
     */
    @ApiModelProperty(value = "商标或地理标志证明商标注册", required = false)
    @Length(max = 42, message = "商标或地理标志证明商标注册不能超过 42 个字符")
    @TableField("\"TRADEMARK\"")
    private String trademark;

    /**
     * 经营范围
     */
    @ApiModelProperty(value = "经营范围", required = false)
    @Length(max = 85, message = "经营范围不能超过 85 个字符")
    @TableField("\"SCOPE_BUSINESS\"")
    private String scopeBusiness;

    /**
     * 经营类型
     */
    @ApiModelProperty(value = "经营类型", required = true)
    @NotEmpty(message = "经营类型不能为空")
    @Length(max = 85, message = "经营类型不能超过 85 个字符")
    @TableField("\"MANAGEMENT_TYPE\"")
    private String managementType;


    /**
     * 生产情况
     */
    @ApiModelProperty(value = "生产情况", required = false)
    @Length(max = 85, message = "生产情况不能超过 85 个字符")
    @TableField("\"PRODUCT_STATUS\"")
    private String productStatus;

    /**
     * 企业介绍
     */
    @ApiModelProperty(value = "企业介绍", required = false)
    @Length(max = 170, message = "企业介绍不能超过 170 个字符")
    @TableField("\"REMARK\"")
    private String remark;

    /**
     * 营业执照
     */
    @ApiModelProperty(value = "营业执照", required = false)
    @TableField("\"LICENSE_CODE\"")
    private String licenseCode;

    /**
     * 获奖证书
     */
    @ApiModelProperty(value = "获奖证书", required = false)
    @Length(max = 12, message = "获奖证书不能超过 12 个字符")
    @TableField("\"CERTIFICATE_CODE\"")
    private String certificateCode;

    /**
     * 授予的称号
     */
    @ApiModelProperty(value = "授予的称号", required = false)
    @Length(max = 12, message = "授予的称号不能超过 12 个字符")
    @TableField("\"TITLE_CODE\"")
    private String titleCode;

    /**
     * 获取的专利
     */
    @ApiModelProperty(value = "获取的专利", required = false)
    @Length(max = 12, message = "获取的专利不能超过 12 个字符")
    @TableField("\"PATENT_CODE\"")
    private String patentCode;

    /**
     * 高科技证明
     */
    @ApiModelProperty(value = "高科技证明", required = false)
    @Length(max = 12, message = "高科技证明不能超过 12 个字符")
    @TableField("\"HIGH_TECH_CODE\"")
    private String highTechCode;

    /**
     * 其他
     */
    @ApiModelProperty(value = "其他", required = false)
    @Length(max = 12, message = "其他不能超过 12 个字符")
    @TableField("\"OTHER_CODE\"")
    private String otherCode;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态", required = false)
    @TableField("\"STATE\"")
    private Integer state;

    /**
     * 是否开展电子商务
     */
    @ApiModelProperty(value = "是否开展电子商务", required = false)
    @TableField("\"IS_ELEC_COM\"")
    private Integer isElecCom;

    /**
     * 有无品牌旗舰店
     */
    @ApiModelProperty(value = "有无品牌旗舰店", required = false)
    @TableField("\"HAS_FLAGSHIP_STORE\"")
    private Integer hasFlagshipStore;

    /**
     * 是否复审龙头企业
     */
    @ApiModelProperty(value = "是否复审龙头企业", required = false)
    @TableField("\"AUDIT_LEAD_ENTER\"")
    private Integer auditLeadEnter;

    /**
     * 电子商务年销售额
     */
    @ApiModelProperty(value = "电子商务年销售额", required = false)
    @TableField("\"ELEC_COM_SALES_YEAR\"")
    private BigDecimal elecComSalesYear;

    /**
     * 带动贫困户数量
     */
    @ApiModelProperty(value = "带动贫困户数量", required = false)
    @TableField("\"POOR_NUM\"")
    private Integer poorNum;

    /**
     * 是否删除
     */
    @ApiModelProperty(value = "是否删除", required = false)
    @TableField(value = "\"IS_DELETE\"", fill = FieldFill.INSERT)
    @TableLogic  //逻辑删除注解
    @JsonIgnore  //忽略
    private Integer isDelete;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人", required = false)
    @TableField(value = "\"CREATE_USER\"", fill = FieldFill.INSERT)
    private String createUser;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", required = false)
    @TableField(value = "\"CREATE_DATE\"", fill = FieldFill.INSERT)
    private Date createDate;

    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人", required = false)
    @TableField(value = "\"UPDATE_USER\"", fill = FieldFill.INSERT_UPDATE)
    private String updateUser;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间", required = false)
    @TableField(value = "\"UPDATE_DATE\"", fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;


}
